﻿Public Class frmExtraer

    Dim Bitacora As New clsActividad
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        OpenFileDialog1.ShowDialog()
        TextBox1.Text = OpenFileDialog1.FileName
    End Sub

    Private Sub Copiarlocal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If UsuarioActivo = "DIEGO" Then
            OpenFileDialog1.Multiselect = True
            OpenFileDialog1.InitialDirectory = "\\192.168.254.252\envios PDF\Pagobusdiego\"
            OpenFileDialog1.Filter = "Archivos PDF (*.pdf)|*.pdf"
        Else
            OpenFileDialog1.Multiselect = True
            OpenFileDialog1.InitialDirectory = "\\192.168.254.252\envios PDF\Red PDFS\"
            OpenFileDialog1.Filter = "Archivos PDF (*.pdf)|*.pdf"
        End If
        
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        FolderBrowserDialog1.ShowDialog()
        TextBox2.text = FolderBrowserDialog1.SelectedPath
    End Sub

    Private Sub RadButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadButton1.Click
        ListBox1.Items.Clear()
        Dim file As String = TextBox1.Text
        If TextBox1.Text = "" Then
            MsgBox("Debes indicar un archivo", MsgBoxStyle.Exclamation)
        ElseIf TextBox2.Text = "" Then
            MsgBox("Debes indicar una ruta de destino", MsgBoxStyle.Exclamation)
        Else
            Try
                'Control para buscar el directorio destino.

                'Cargamos aquí el directorio
                TextBox2.Text = FolderBrowserDialog1.SelectedPath
                'Control de errores.
            Catch ex As System.Exception
                System.Windows.Forms.MessageBox.Show(ex.Message)
            End Try

            'Variable que obtendrá cada directorio
            Dim directorio As String

            'Controlamos el boton cancelar y salimos sin mas si se ha presionado
            If OpenFileDialog1.FileName = "OpenFileDialog1" Then Exit Sub
            'extraemos el directorio del o los archivos seleccionado
            directorio = Mid(OpenFileDialog1.FileName, 1, InStrRev(OpenFileDialog1.FileName, "/"))
            'Si es nula la extracción buscamos la otra barra invertida para el caso
            'de los directorios raices.
            If directorio = "" Then
                directorio = Mid(OpenFileDialog1.FileName, 1, InStrRev(OpenFileDialog1.FileName, "\"))
            End If
            'Finalmente recorremos él o los archivos seleccionados...
            For Each archivos In OpenFileDialog1.SafeFileNames
                'Los cargamos en el listbox1
                ListBox1.Items.Add(archivos)
            Next
            'Control de Errores.

            'Variable que contendrá el nombre y extensión de cada archivo.
            Dim archivo As String
            'Path del directorio destino
            Dim path As String
            'Variables para hallar las barras invertidas y el bucle
            Dim i As Integer
            Dim x As Integer
            'Recorremos todos los archivos del Listbox1
            For x = 0 To ListBox1.Items.Count - 1
                'Cada vez que el valor de x avanza, se selecciona el elemento
                'con valor x del Listbox1
                ListBox1.SelectedIndex = x
                'Asignamos a i el valor donde fue hallada la barra, iniciando desde el final del texto.
                i = InStrRev(ListBox1.Text, "/")
                'Controlamos el valor de i
                If i = 0 Then
                    'Volvemos a buscar pero la otra barra
                    i = InStrRev(ListBox1.Text, "\")
                End If
                'Extraemos el nombre del archivo y la extensión.
                archivo = Mid(ListBox1.Text, i + 1, Len(ListBox1.Text) - i + 2)
                'Aquí controlamos las barras, si es un path de directorio raiz o no.

                'Copiamos desde el origen al destino.
                'Con la última opción True o False controlas la sobreescritura del archivo
                'que se está copiando.
                My.Computer.FileSystem.CopyFile(directorio & ListBox1.Text, TextBox2.Text & "/" & ListBox1.Text)
            Next
            'Control de errores.

            Bitacora.RegistraActividad("Extrajo archivo " & TextBox1.Text)
            TextBox1.Clear()
            TextBox2.Clear()

        End If

    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        TextBox1.Text = ""
        TextBox2.Text = ""
        ListBox1.Items.Clear()
    End Sub

    Private Sub toolGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles toolGuardar.Click
        Me.Close()
    End Sub
End Class